package cn.chainco.cts.iservice;

import java.util.List;
import java.util.Map;
import java.util.Set;

import cn.chainco.cts.jdo.IM;
import cn.chainco.cts.jdo.User;

public interface ImManager extends CommonManager{
	/**
	 * 查询登入人的未读信息
	 */
	public List<IM> getOneUserNotReadInfo(User user);

	/**
	 * 查询登入人的未读信息且分组
	 */
	public Map<User, Integer> getNotReadInfoGroupByUser(User user);

	/**
	 * 查询某个人对某个人的聊天记录
	 */
	public List<IM> getChatHistory(User user1, User user2, String content);

	/**
	 * 查询登入人对某个人的未读信息
	 */
	public List<IM> getNotReadChatByOneUser(User user1, User user2);

	/**
	 * 修改信息读的状态为已读,返回1为正确，2为修改中出错,0为传入参数有误
	 */
	public int modifyIMsReadState(List<IM> list);

	/**
	 * 查询某个人对某个人的最新的那条聊天记录
	 */
	public IM getNewChat(User user1, User user2);

	/**
	 * 查某条单的聊天记录
	 */
	public List<IM> getIMByWorkId(long workId, long userId, String content);

	/**
	 * 查询最近联系人的聊天记录
	 */
	public List<User> getNearIMByUser(User sender);

	/**
	 * 根据用户查询统计和自己聊过天的人
	 */
	public Set<User> getIMHistoryByUser(User sender);

	/**
	 * 统计某个人和多少单聊过天
	 */
	public List<IM> getIMHistoryGroupByWork(User sender);

	/**
	 * 查询登入人的未读信息且分组并排
	 * @param user
	 * @return
	 */
	public List<Map<User, Integer>> getListNotReadInfoGroupByUser(User user);
}
